The invention relates to memory systems which are employed in data processing units and particularly in data processing systems having a main memory, an auxiliary memory and an arrangement for dynamically translating virtual addresses into physical addresses by calculating a logic page number.
There are various known techniques by which a plurality of programs being executed by one or more data processing units may share a single memory. A memory which is shared in this way by programs needs to have a very large capacity, which is often greater than the capacity which can be provided at present. To deal with this situation, use is made of the concept of virtual memory. A virtual memory is divided into segments each of which can be divided into pages, each page containing a predetermined number of bytes. The addresses of the segments and pages in the virtual memory have random designations and occupy no particular positions in the main memory. The segments and pages of the virtual memory may thus be arranged in the main memory in a random fashion.
The random arrangement of the segments and pages in the main memory makes it necessary to translate or convert virtual addresses into physical addresses by using a set of conversion tables situated in the main memory.
In a system of unpaginated segmentation, the segments are of variable size and they are located by means of the base address (address of the first instruction of the segment) and the size (length) of the segment.
To access a segment with this method of location, it is necessary for the whole of the segment to be loaded into the main memory and this may be a drawback when only part of the segment is to be accessed. Space is then taken up in the memory of such systems to no purpose. Finally, the variable size of the segments considerably complicates the algorithm for finding locations available to receive a segment.
In a system using a virtual memory, conversion tables are used which are formed by segment tables and page tables. Each page table in a set of conversion tables gives actual locations of all the pages of a segment in the segment table.
This system has a number of disadvantages; the chief of which is that it causes the main memory to be occupied by a large number of page tables. The same disadvantages as are encountered with simple segmentation are once again encountered in connection with the algorithm for managing the space occupied by the page tables.